// pages/pointDetails/pointDetails.js
const util = require('../../utils/util.js')
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    customBar: app.globalData.customBar,
    token: null,
    currentIndex: 0,
    courseIndex: 0,
    headerBannerList: [],
    point: {},
    referencePrice: '0',//参考费用
    mySelectNum: 0,
    BODY: {
      biz_1_zydxxlrgl_1: [],
      biz_1_zydxxlrgl_2: [],
    },
  },
  //我选择
  mySelect() {
    wx.navigateTo({
      url: '/pages/mySelect/mySelect',
    })
  },
  goBack(e) {
    wx.navigateBack()
  },
  swiperChange(e) {
    this.setData({
      currentIndex: e.detail.current
    })
  },
  //加入行程
  joinTravel(e) {
    let _this = this;
    wx.showLoading({
      title: '加入中...',
      mask: true
    })
    util.request('itf/common/hongpei/resource/addAndCancleTravel.json', {
      billid: _this.data.point.billid,
      operate_type: "Y"
    }, "POST").then(res => {
      wx.hideLoading();
      if (res.success) {
        _this.setData({
          'point.is_join': "Y",
          mySelectNum: res.data.zyd_number
        })
        util.showMsg({ msg: "已加入行程" });
      } else {
        util.showMsg({ msg: "加入行程失败！" });
      }
    });
  },
  //取消加入行程
  cancelJoinTravel(e) {
    let _this = this;
    wx.showLoading({
      title: '取消中...',
      mask: true
    })
    util.request('itf/common/hongpei/resource/addAndCancleTravel.json', {
      billid: _this.data.point.billid,
      operate_type: "N"
    }, "POST").then(res => {
      wx.hideLoading();
      if (res.success) {
        this.setData({
          'point.is_join': "N"
        })
        _this.setData({
          mySelectNum: res.data.zyd_number
        })
        util.showMsg({ msg: "取消成功" });
      } else {
        util.showMsg({ msg: "取消失败！" });
      }
    });
  },
  //收藏
  collectTravel(e) {
    wx.showLoading({
      title: '收藏中...',
      mask: true
    })
    let _this = this;
    let collectIndex = "Y";
    util.request('itf/common/hongpei/resource/addAndCancleZyd.json', {
      billid: _this.data.point.billid,
      operate_type: collectIndex
    }, "POST").then(res => {
      wx.hideLoading();
      if (res.success) {
        this.setData({
          'point.is_collect': collectIndex
        })
        util.showMsg({ msg: "收藏成功" });
      } else {
        util.showMsg({ msg: "收藏失败！" });
      }
    });
  },
  //取消收藏
  cancelCollectTravel(e) {
    wx.showLoading({
      title: '取消收藏中...',
      mask: true
    })
    let _this = this;
    let collectIndex = "N";
    util.request('itf/common/hongpei/resource/addAndCancleZyd.json', {
      billid: _this.data.point.billid,
      operate_type: collectIndex
    }, "POST").then(res => {
      wx.hideLoading();
      if (res.success) {
        this.setData({
          'point.is_collect': collectIndex
        })
        util.showMsg({ msg: "取消收藏成功" });
      } else {
        util.showMsg({ msg: "取消收藏失败！" });
      }
    });
  },
  //微课堂-专题课切换
  courseToggle(e) {
    const courseIndex = e.currentTarget.dataset.index
    this.setData({ courseIndex })
  },
  //获取已选择行程的数量
  getZydNumberForUser() {
    let _this = this;
    util.request('itf/common/hongpei/resource/getZydNumberForUser.json').then(res => {
      if (res.success) {
        _this.setData({
          mySelectNum: res.data
        })
      } else {
        util.showMsg({ msg: res.message || res.msg });
      }
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    let billid = options.billid;
    const token = wx.getStorageSync('token');
    //查询资源点的详情信息
    this.getPointDetailById(billid);
    if (token) {
      this.setData({
        token
      })
      this.getZydNumberForUser();
    }
  },

  //查询资源点的详情信息
  getPointDetailById(billid) {
    let _this = this;
    wx.getLocation({
      type: 'wgs84', // 坐标类型：wgs84（国际标准）或 gcj02（国测局标准）
      success(res) {
        const latitude = res.latitude;  // 纬度
        const longitude = res.longitude; // 经度
        util.request('/itf/common/hongpei/resource/getZydBilldata.json', {
          billtype: 'zydxxlrgl',
          billid,
          latitude,
          longitude
        }).then(res => {
          if (res) {
            let header = res.HEADER;
            header.xq_memo = header.xq_memo == null ? '' : header.xq_memo;
            header.xq_memo = _this.formatImg(header.xq_memo);
            header.jj_memo = '&emsp;&emsp;' + (header.jj_memo == null ? '' : header.jj_memo);
            _this.setData({ point: header })
            //设置轮播图
            let banner_xqy = header.banner_xqy;
            let banner_arr = [];
            if (banner_xqy != null && banner_xqy != undefined) {
              let banner_xqy_arr = banner_xqy.split(",");
              for (let i = 0; i < banner_xqy_arr.length; i++) {
                let banner = {};
                banner.src = util.API_BASE_URL + "itf/common/att/download.do?attrId=" + banner_xqy_arr[i];
                banner_arr.push(banner);
              }
            }
            _this.setData({
              'headerBannerList': banner_arr,
              BODY: res.BODY
            })
          } else {
            util.showMsg({ msg: "获取资源分类失败！" });
          }
        });
      },
      fail(err) {
        console.error('获取位置失败：', err);
      }
    });
  },
  // content 为后端返回的富文本内容
  formatImg(content) {
    if (!content) return '';
    const regex = /<img[^>]*>/g;
    content = content.replace(regex, function (match) {
      return match.replace('>', ' style="max-width:100%;height:auto;">');
    });
    return content;
  },
  //去导航
  goNavigate(e) {
    const item = e.currentTarget.dataset.item;
    let xxdz = item.xxdz.split(",").join("");
    wx.openLocation({
      latitude: Number(item.latitude), // 目的地纬度
      longitude: Number(item.longitude), // 目的地经度
      name: item.zydmc, // 目的地名称
      address: xxdz // 目的地地址
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})